描述
国际象棋共有8行8列,64个单元格,无论将马放在棋盘的哪个单元格,都可以让马踏遍棋盘的每个单元格。要求编程实现马踏棋盘的过程,输出马在棋盘上走过的次序。
思路
- 使用循环逐个处理棋盘的64个单元格
- 将当前步数写入棋盘数组中,开始探测下一步该走的位置
- 分别测试八个方向,将可走的位置记录再next数组中
- 对可走位置进行再探测,找出每个位置的下一步可走步数,将步数最少的可走位置作为下一步的位置(每次都将步数最少的可走位置作为下一步的位置即贪心的体现)
- 循环2~4。
代码
#include<iostream>
#include<iomanip>
using namespace std;
struct coordinate{
int x;
int y;
};
int chessboard[8][8]={
0};
int travel(coordinate start){
coordinate move[8]={
{-2,1},{-1,2},{
1,2},{
2,1},{
2,-1</